package procesador;

public class Campo{
	public static final String CAMPO_NUMERICO = "NUMBER";
	public static final String CAMPO_TEXTO = "TEXT";
	
	/** Nombre del campo */
	private String nombre;
	/** Tipo del campo */
	private String tipo;
	
	/** Indica si el campo pertenece a primary key */
	private boolean clave;
	
	public Campo(String nombre, String tipo){
		if(nombre == null)
			throw new IllegalArgumentException("Nombre del campo requerido");
		if(!CAMPO_NUMERICO.equals(tipo) && !CAMPO_TEXTO.equals(tipo))
			throw new IllegalArgumentException("Tipo de campo(" + tipo + ") incorrecto");

		this.nombre = nombre;
		this.tipo = tipo;
		this.clave = false;
	}
	
	public Campo(String nombre){
		this.nombre = nombre;
		this.clave = false;
	}
	
	public String getNombre(){
		return this.nombre;
	}
	
	public String getTipo(){
		return this.tipo;
	}
	
	public boolean equals(Object o){
		if(o == null)
			return false;
		Campo c = (Campo) o;
		if(nombre != null)
			return nombre.equalsIgnoreCase(c.nombre);
		else
			return false;
	}

	/**
	 * @return the clave
	 */
	public boolean isClave() {
		return clave;
	}

	/**
	 * @param clave the clave to set
	 */
	public void setClave(boolean clave) {
		this.clave = clave;
	}
}
